home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
fish
/
726-750
/
729
/
bbbbs
/
bbbbs54.lzh
/
Information
/
BBBBS.DOC
< prev
next >
Wrap
Text File
|
1992-07-26
|
33KB
|
821 lines
26 July 1992
BBBBS - Baud Bandit Bulletin Board System for the Amiga - BBBBS
***************************** Features *****************************
Up to 99 file libraries with extended filenotes.
Up to 99 fully threaded message conferences.
Number of users, files, messages, etc. are only limited by storage space.
Controlled file library and message conference access for users & sysops.
Interface to extra devices like CD-ROM & others, all treated as Read-Only.
Complete Email area including binary mail, and multiple forwarding.
User statistics including messages written, files ul/dled, time, etc.
RexxDoors sub-area, Grin_du_Jour, StarTrek, Wheel_Of_Fortune, much more!
Searches: Search users, file descriptions, or messages.
Online Text Editor: with Cut and Paste, Replace, and Spellchecking.
Separate multi-tasking module for local sysop logon.
User profiles, Polling_Place (a voting booth), background archiving.
***************************** Contents ****************************
1. Copyright and Distribution Information
2. Requirements
3. Organization
4. Setting Up
5. User data
6. bbsLOCAL.rexx
7. Macros
8. rexxDoors
9. Additional Notes
a. RexxSpell
b. FileLists
c. Links
d. Birthdays
******************** Copyrights and Distribution ********************
The ARexx modules in BBBBS are copyright 1990-91-92 Richard Lee Stockton,
and ALL RIGHTS ARE RESERVED. In particular, commercial use of these
programs requires a written agreement with the author. HOWEVER, these
files may be freely distributed and used for non-commercial purposes
AS LONG AS the copyright notices contained within the code remain intact.
To contact me for distribution or just more information:
Richard Lee Stockton
21305 60th Ave West
Mountlake Terrace, WA 98043-2009
Phones:
voice = 206-776-1253
FAX = 206-775-7573
BBS = 206-744-1254
Telecomm:
call the BBS number above and leave a [C]omment to sysop.
- OR - send Email to RLStockton on PORTAL or BIX or GENIE
- OR - (if you MUST), my Compu-$erve address is 71650,424
****************** Requirements for operation ************************
BBBBS Requirements: Assumes standard 1.3 or 2.0 Amiga OS
RAM: ~2.5 MEGS of RAM to run. 2.0 MEG without spellchecking.
Commercial Software:
(I have *nothing* to do with these, except for using them.)
BaudBandit 1.50 - $50 retail, ~$30 discounted
ARexx 1.15 - $50 retail, ~$30 discounted
Freely Distributable Software:
(comes with BBBBS or are easily found in the PD)
BBBBS.LZH
rexx (must be in your rexx: drawer)
Answer.baud
ArcBrowse.rexx
ArcMsgs.rexx
baud.rexx
bbsALPHA.rexx
BBBBS.baud
BBBBSdemon.baud
bbsExtDL.baud
bbsHOURLY.rexx
bbsLOCAL.rexx
bbsMAINT.baud
bbsNewFile.rexx
bbsREPORT.rexx
bbsULDL.rexx
bbsUSER.rexx
BuildALPHA.rexx
BumpLevel.baud
BumpMember.baud
BumpTime.baud
ChangeUserName.rexx
Contents.rexx
doorDemon.baud
EditUsers.rexx
ForceChat.baud
Make_BrowseList.baud
OldEMail.rexx
Setup.rexx
ShowFKeys.baud
ShowLog.baud
rexxDoors (these are needed for opening and closing cookie, etc.)
Data (DIR)
Grins
Grin_du_jour.rexx
Moon.rexx
Time.rexx
libraries (must be in your system Libs: drawer)
arp.library (VERS 39.1 by CHeath & others on bbs everywhere)
rexxarplib.library (VERS 3.0 by Willy Langeveld on bbs everywhere)
screenshare.library (VERS 1.52 comes with rexxarplib)
rexxmathlib.library (VERS 1.3 by Willy Langeveld on bbs everywhere)
rexxsupport.library (VERS 34.9 comes with ARexx 1.15)
rexxsyslib.library (VERS 36.23 comes with ARexx 1.15)
commands (must be in your system C: drawer
QuickSort (by Marvin Weinstein - ARexxQSort.lzh)
sound (by RLStockton, needed to play BBS Yell.snd)
boot (optional: warm-boots if BBBBS seems frozen)
lha (freely distributable de-archivers...)
arc
zoo
unzip
dms
************************** Organization **********************************
BBS:
BBBBS looks in your s: directory for the file "CONFIG.BBS" which sets all
preferences including the device where the BBS files are located.
Within this device, the BBS may use 99 file & 99 message directories.
Users may be given access levels between 0 (new user) and 99 (super-sysop).
The lowest sysop level (gets to edit filenotes, maybe edit messages
depending on level) defaults to 80. Level 99 (and only level 99!) is
allowed to open a remote Shell and the power to edit ANY file remotely.
Uload/Dload access to libraries & conferences at or below the user's level.
Also, a sysop may exclude certain directories from the user's use.
(file libraries by name, or message conferences by number)
BBS System File Directories:
'Sysops' = Holds files for sysop review.
'Information' = User viewable files. 'I' from the Main Menu.
'Scratch' = temporary editor files, etc. For debugging.
'BBS_HELP' = Command summary files, according to level.
'rexxDoors' = rexx doorway programs
Grin_du_Jour.rexx = 'one-liner' humor
Moon.rexx = the phase of the moon
Time.rexx = the time in words
rexxDoors/Data/Grins = data for 'Grin_du_Jour.rexx'
...other rexxDoors available in "BBBBSDoors.lha"
'BBS_TEXT' = Text (mostly) files used by the BBS.
HELLO = Sign on message. (19 lines max!)
NEW = New user welcome message.
YELL.snd = (optional) Yell-For-Sysop sound.
YELL = (optional) Yell voice script.
WELCOME = default welcome message
WELCOME.Mon, WELCOME.Tue, ..., WELCOME.Sun
= Daily Welcome messages.
WELCOME.1225 = Christmas welcome msg., etc.
UNTIL.19920201 = displays at logon until Feb 1, 1992
GOODBYE = Logoff message. (local BBS numbers)
DEF.NEW_USER = new user defaults
DEF.MEMBER = member defaults
DEF.COURTESY = courtesy list defaults
BIRTHDAY = displays on user's birthday
PROFILES = intro message to user profiles area.
'FileNotes' = A dir of dirs. Each dir corresponding to a
file library. Within each, a file desciption
of the corresponding file in the library.
Written by BBBBS.baud, but editable.
'BBS_LIBS' = Up to 99 file libraries. You select the names of
these by editing the file 'BBS:Lists/Libraries'.
The BBS sees them by name.
'BBS_MSGS' = Up to 99 message conferences. You select the
names of these by editing the file
'BBS:Lists/Conferences', but the BBS sees
them as MSG1 thru MSG99.
'Lists' = System lists and lists needed by bbsREXX.
Libraries = see example for proper format
Conferences = see example for proper format
Files = THIS FILE IS WRITTEN BY BBBBS.baud.
Under normal circumstances it should NOT be edited
by humans. format: 'filenum dirname filename'
Files.ALPHA = written by BBBBS.baud
Courtesy = List of VIP usernames. A new
user on this list is given immediate access.
That name is then removed from this list.
Excuses = list of randomly selected reasons why
the sysop cannot CHAT right now.
*** Following dirs contain files written by BBBBS.baud. DO NOT EDIT! ***
'Numbers' = LastFile, LastMail, LastMessage1, etc.
Also a dir called "Hourly" that contains data
for the "average minutes of use per hour" graph.
'Usage' = Monthly files. Counts hours of modem usage.
'Logs' = Daily files. Tracks user, time, mail or message activity,
uloads/dloads, internal errors, etc.
Built in 'log-reader' for sysops.
'EMailFiles' = Private files left attached to EMail.
'EMail' = Private mail between users.
'Users' = User files.
*************************** Setting Up *****************************
Follow these steps to set up your own BBS..
1. Do Initial Setup (assumes that bbspath is "BBS:")
a. CD to BBS: ; the directory to de-lharc the bbs into
b. Lha x BBBBSnn.lha ; extract respecting original paths
c. COPY BBS:rexx/QuickSort C: ; ARexx QuickSort
d. COPY BBS:S/#? S: ; CONFIG.BBS, Bandit.Keys, Bandit.Config
e. COPY BBS:rexx/#? REXX: ; NOTE: 250K of rexx programs!
2. Make sure that "C:DATE" returns the correct time and date. The BBS
needs to know the correct time and date for many of its routines.
3. Use a Text editor to edit the following lists. These lists can be
changed or edited anytime. The libraries may be re-ordered at any time,
but the message conferences can only be added to, not re-shuffled. That
is, once you associate a message conference title with its number, and
messages are actually written to that conference, you MUST keep that same
number associated with that conference title. (This is because messages
are kept in MSG1, MSG2, etc. while files are kept in directories created
with the title that YOU give it. Note: No spaces are allowed in titles).
You may change the CONFERENCE title, but the old messages in that
conference will still refer to the old title. It is possible to change
a LIBRARY title, but you also have to rename the directory, and update
all references to the old dir (which can be quite a few!), so I advise
against it. Use care in all title selections and save yourself future
problems with re-naming.
a. BBS:Lists/Conferences (message conference names)
b. BBS:Lists/Libraries (file library names)
Note: If you wish to review uploaded files before public posting, you need
to be certain that the highest possible non-sysop directory is called
"Sysops", as this is where new uploads will be saved.
c. BBS:Lists/Courtesy (these names receive INSTANT validation)
d. BBS:Lists/Excuses (good reasons why the sysop can't chat right now)
4. Use a Text editor to edit "S:CONFIG.BBS" to your preferences.
IMPORTANT! Test your "c:info" from the CLI with your "info-compatible"
device name to make sure that the blocks free amount is being returned.
See BBS_TEXT/CONFIG.BBS for line by line a description of the options.
Note that if line 30 of the config is 1, the BBS stays "up" all the time,
which means the CONFIG.BBS and the various Lists are not reloaded each
call. DO NOT change the file libraries using bbsLOCAL.rexx while the BBS
is in resident mode as this will confuse the BBS and files will be lost.
To exit resident, use SHIFT-F2 from BaudBandit to setclip BBS_QUIT=QUIT.
It may take up to two minutes for BBBBS to notice that it is supposed to
unload before it will actually halt the rexx process. Watch for the blue
dot to disappear from the upper right part of the BaudBandit titlebar.
If you want the default sysop name to be something other than "SYSOP":
a. The name should be in all caps with the "_" character substituted for
spaces. (ie, RICHARD_LEE_STOCKTON).
b. Then, put "SYSOP" in the exclusion list to "forward" all requests
for "SYSOP" to your sysop name.
c. Finally, REName BBS:Users/SYSOP BBS:Users/<your sysop name>
5. Use the Text editor on the following textfiles to be read by the user.
a. BBS:BBS_TEXT/HELLO /* this is the title message */
b. BBS:BBS_TEXT/NEW /* message to new users */
c. BBS:BBS_TEXT/WELCOME /* once-a-day welcome to users */
d. BBS:BBS_TEXT/GOODBYE /* last thing the user sees */
e. BBS:Information/SYSTEM_INFO /* what Amiga model, OS, etc */
6. You may also wish to edit the default user files in the BBS_TEXT drawer,
but I suggest leaving them alone until you gain a better understanding
of the BBS system.
a. DEF.NEW_USER /* all lines are used */
b. DEF.COURTESY /* all lines are used */
c. DEF.MEMBER /* ONLY time, level, and exclude_dirs are used */
7. Start the LOCAL BBS by typing "rx bbsLOCAL SETUP". Enter "sysop"
(or the name you changed it to) when asked to enter your name, then
enter "password" when asked for a password. This will construct the
directories you specified in BBS:Lists/Libraries, (if they don't already
exist).. likewise, the message conferences will be constructed, if needed.
You will then enter the bbs _AS IF_ it were running from the modem,
although Baud Bandit is not needed at all.
8. Select "Y" to edit your personal data. CHANGE YOUR PASSWORD!!
9. Read the BBBBS.COMMANDS file in [I]nformation for general command
information, and take a look around the board. Try out some things a
user would try.
10. Use "G" to logoff which will rewrite your user file.
11. Start BaudBandit. Check BB's Macro display. The important thing
here is to make sure that "\mAnswer.baud" is in "RING" portion of BB's
configuration.
2400 baud operation:
Handshake should be set to "NONE" (otherwise CTRL-S can hang the BBS).
AutoBaud should be set to "ON" and the baud rate to the same value
you have set in BBS:BBS/CONFIG as the Maximum baudrate.
9600 baud operation:
Handshake should be set to "7-Wire".
AutoBaud should be set to "OFF" and the baud rate set to the maximum
"terminal-to-modem" baudrate (19200 max for less than 68020 cpu).
I have used Practical Peripherals modems and the setup strings are:
9600SA AT &F M0 &C1 &D3 S95=47 &W
14400FXSA AT &F M0 W1 &C1 &D3 &T5 S37=11 S95=47 S118=2 &W
&F = factory defaults
M0 = turn speaker off [optional]
W1 = enable progress messages
&C1 = track DCD
&D3 = monitor DTR and reset to power up conditions
&T5 = disable remote testing [optional]
S37=11 = highest modem to modem rate is 14400
S95=47 = all progress messages and modem-modem speed report
S118=2 = LCD display 2 seconds per line of info. [optional]
&W = save to modem RAM so ATZ will recall these settings
These may or may not work for you, but at least it's a place to start.
Note that you only have to give this command once, then the "ATZ"s
that BBBBS sends will reset your modem to this default.
There are Bandit.Config files provided for both 9600/14400 and 2400.
If you make any changes remember to save them.
NOTE! Your modem MUST be set so that you can see verbose responses from
your modem on your BB screen (ie, RING, CONNECT 9600/ARQ (or whatever),
NO CARRIER, OK, etc). The baudrates reported by the modem should be the
modem-to-modem baudrate. Correct BBS operation depends on these messages.
12. If you have RAM to spare, give yourself a large capture buffer in
BaudBandit, especially if you will be debugging. You can use BB's
review buffer to study what the user did, in what order, and what
happened. I have mine set to about 150k..
13. To set up the BBS to start automatically in the background, add
these lines to your startup-sequence:
(assumes that BaudBandit is in the BBS: drawer)
rx setup
BBS:BB
WaitForPort BAUD
;rx Baud OFF ; uncomment this line to close BB's screen after startup
run rx "ADDRESS BAUD;Send '\mBBBBS.baud'"
14. Wait for callers, and soon become beloved sysop to billions of users...
********************* User data file ***************************
1. name:
2. street:
3. city, st zip:
4. phone:
5. password: (only visible by user and super-sysop)
6. protocol:
7. lines per page:
8. preferences: may include MENU or MENUS, COLOR, STREET, PHONE
9. Computer:
10. Interests:
11. Time: <nn> minutes <nn> more times today
12. first date on: datestamp timestamp
13. last date on: datestamp timestamp
14. upload: <nn> files <nn> bytes day month year
15. download: <nn> files <nn> bytes day month year
16. lastfile: lastfile datestamp timestamp
17. rtio/eml: dl/ul_ratio email_written last_email_read_(sysop_only)
18. winnings: <nn>
19. time on: <nn> days <nn> hours <nn> minutes in <nn> calls.
20. level: <nn>
21. exclude directories list: (only viewable/editable by sysops)
22. msg_read: MSG1 MSG2 MSG3 ... MSG<last> (-1 in MSGslot = conference OFF)
23. msg_writ: MSG1 etc.
24. msg_mark: MSGdirnum/MSGnum MSGdirnum/MSGnum... (conf msgs TO this user)
25. used to temporarily store filelist to be downloaded.
Default data for New Users is stored in BBS_TEXT/DEF.NEW_USER
Default data for Courtesy List Users is stored in BBS_TEXT/DEF.COURTESY
Only lines 6-22 of these files are used, the rest are ignored.
Default data for Members is stored in BBS_TEXT/DEF.MEMBER
Only lines 11, 20, 21 and 22 of this file is used, the rest are ignored.
********************** bbsLOCAL.rexx ***************************
This is a multi-tasking (within limits, see below) rexx program that
you as the sysop may run from a Shell or CLI. In most ways it is just
like the regular BBS program, so you see what your users see. However,
it is not connected to BaudBandit in any way, and in fact, does not
use the serial port (or your modem) at all. Upload and download functions
are transmuted into copy (with the arp requester), and some functions
are left out (like the check for DCD, etc.). It DOES look at the same
data that BBBBS.baud looks at, and reasonable care must be taken not
to add files to the file libraries while a user is also adding a file
to the libraries. Likewise, don't write EMail while the user is writing
email, and don't write messages while the user is writing messages IN
THE SAME CONFERENCE (messages CAN be written in different conference at
the same time, one by user, one by sysop).
CLI> rx bbsLOCAL SETUP
Whenever you have made changes to the CONFIG.BBS file, it's a good idea
to run bbsLOCAL with the SETUP option. This will check your list of dirs
for libraries and conferences, and MakeDir any that don't yet exist.
Copying Files Direct Into the Libraries:
METHOD 1:
Run bbsLOCAL and use the Upload command. The arp file requester
will appear so you can copy the files into the correct libraries. After
the copy, you will enter a note just as if you uploaded the file, and
the system filelists will be updated.
METHOD 2:
First copy the files to the correct libraries. Then run bbsLOCAL
(or call) and edit (in this case, create) the file description using
the "%" sysop command.
In either case, when BBBBS sees that this note has been created,
it adds the file to the other system filelists, and increments the
count in "Numbers/LastFile".
************************* Macros *******************************
Note that if called from BB with a user online, these macros will not
take effect if the user is waiting at a menu. You can press return
yourself to force the macro if it looks like the user is sleeping
- Function Keys -
F1 - ForceChat.baud - Forces user into chat at next prompt.
F2 - Twit.baud - TWIT-KEY, forces logoff of current user at next prompt.
F3 - BumpTime.baud - Opens a requester allowing you to set this users
maximum time in minutes for this session. It will take effect at
the next prompt. This is a temporary change, this session only.
F4 - BumpMember.baud - Member values are taken from "BBS_TEXT/DEF.MEMBER".
Takes effect at the next prompt. This change is saved to the users
data file. It is permanent.
F5 - BumpLevels.baud - Opens a requester allowing you to set the level and/or
upload to download ration for this user. It will take effect at the
next prompt. This change is permanently saved to the users data file.
F6 - Close Function Key Help Window
F7 - ShowLog.baud - Displays today's log on BB's screen, BBS running or not.
F8 - An inline macro to fetch the clip "BBS_totalusage" and display monthly
usage in hours and minutes.
F9 - Baud.rexx OFF - Turns BaudBandit's screen off (improves speed). While
the screen is off THE CAPTURE BUFFER STAYS OPEN! This means you can
leave the screen off for fastest response, then, when the modem tells
you the user has logged off, turn the screen on again (from CLI
"rx Baud") and read the review buffer (SHIFT-HELP).
F10 - Opens a Function Key Help Screen on BaudBandits screen. F6 to close.
- SHIFTED Function keys -
S1 - Starts up BBBBS.baud.
WARNING! Don't start BBBBS while it is already running in this BB!
S2 - Sets the "UnLoad" flag.
BBBBS will exit after the current call, or within 60 seconds.
S3 - UnSets the UnLoad flag (in case you change your mind)
S4 - Sets the Maintenance flag.
BBBBS.baud or Answer.baud will answer the phone, give a "Sorry, busy!"
message, and hang up.
S5 - UnSets the Maintenance flag.
S6 - Set the modem "off-hook". Users see busy signal.
S7 - Reset modem to "on-hook" (hangup).
S8 - Run BBBBSdemon.baud.
S9 - Display total RAM available on the screen, chip+fast.
S10 - Enter message to be sent to current user at first opportunity.
--- Other Macros ---
rexx:BuildALPHA.rexx - rebuilds the file & alpha lists from the ground up.
BBBBS should preferably not be running so that a user won't upload in
the middle of your rebuild and overwrite the list. This macro sets
some clips that force BaudBandit to unload BBBBS and give a "busy"
message to any caller. After buildALPHA.rexx is finished, press
SHIFT-F1 to start loading BBBBS.baud, or let the first user trigger
the load.
BuildALPHA.rexx may take a while. 1400 files=15 mins on 68000 Amiga.
rexx:bbsULDL.rexx - Reads the CURRENT file library descriptions and writes
statistics to "Information/STATS.ULDL". This will happen automatically
once a day if STATS.ULDL exists! To disable this function, just delete
"Information/STATS.ULDL".
rexx:bbsUSER.rexx - Reads the CURRENT userfiles and writes statistics to
"Information/STATS.USER". This will happen automatically once a day
if STATS.USER exists! To disable this function, just delete the file
"Information/STATS.USER".
ChangeUserName.rexx - To change the user name HACK_MASTER", from a CLI
enter "rx ChangeUserName HACK_MASTER". Just press return to use his/her
real name, or enter the new name. UserFile, Email and EmailFiles will
be updated. This function may also be accessed from within BBBBS.
bbsREPORT.rexx - Constructs a report of inactive users and saves it as
email to sysop. NOTE: If "VIP_USER" appears on the user-data line that
contains the excluded libraries, that user will be excluded from the
list of inactive users. If a file report is requested, the file libs
will be counted and searched for possible problems. This entire report
is run as a background process thru the AREXX port and the resulting
archive left as email with an attached file.
BBBBSdemon.baud - Runs independently of BBBBS.baud and looks for a
condition where there is no user online, but BBBBS hasn't reset, and
tries to fix it. If it fails to fix it after a few tries then c:boot
is run. If c:boot does not exist, the demon runs "c:hi" which tries to
halt all currently running rexx programs.
OldEmail.rexx - Run from CLI to list Email (and emailfiles) older than a
given number of days. Output may be redirected to a file. The sysop is
also given the chance to delete each selected email or emailfile.
------- Internal Macros run ONLY by BBBBS --------
bbsALPHA.rexx - Controls the archiving of the alpha filelist. If a
name and path is given for an arcfile, "Lists/Files.ALPHA" will
be archived into it using the archiver in the config file.
bbsMaint.baud - Runs if the current messages online exceed the maximum
set in "CONFIG.BBS". Deletes the oldest messages that don't have the
"SaveMe!" flag set (2 exclamation points as the first 2 characters).
doorDemon.baud - Runs while the user is running a rexx door program.
Checks carrier for hangups and time elapsed. More infomation below.
ArcMsgs.rexx - Archives new (or selected) messages from the conference
area using Lharc. This is done as a background process using the AREXX
port, and the resulting archive left as email with an attached file.
MakeBroweList.baud - Archives user selected file descriptions using
Lharc. This is done as a background process using the AREXX port,
and the resulting archive left as email with an attached file.
bbsHourly.rexx - graphic display of average minutes of use hour by hour.
Contents.rexx - Display the contents of an archived file
(.arc .dms .lha .lzh .zip .zoo) assuming appropriate c: programs.
bbsExtDL.baud - Allows access to CD-ROM drives, extra floppies,
harddrives, partitions, or just assigned areas to be treated as
"Read-Only" devices.
Enter a space separated device list on line 10 of CONFIG.BBS.
Devices on this list are handled separately from the rest of the BBS
file libraries, and do not have filenotes, unless they are referenced
using "links" (see below).
bbsNewFile.rexx - If activated, automatically makes an archive copy of
each file uploaded to the BBS and sets the archive bit of the file
in the library. TO ACTIVATE this feature, put bbsNewFile.rexx into
a text editor and replace "NO_DIR:" with a valid pathname.
***************************** rexxDoors ****************************
rexxDoors:
Almost ANY rexx program that uses NO GRAPHICS OTHER THAN CHARACTERS can
be easily made into a rexxDoors program. Just add these lines at the top:
CR="0D"x
SIGNAL ON BREAK_C
SIGNAL ON BREAK_E
and these lines at the bottom, just before the main RETURN or EXIT:
BREAK_C:
BREAK_E:
/* <-- might put "SetClip('BBS_winnings',winnings)" routine here */
EXIT;
and lastly, search the text for all instances of "SAY" and add "||CR" to
the END of each SAY command.
SAY 'Here we go.' becomes SAY 'Here we go.'CR or SAY 'Here we go.'||CR
If you want the rexxDoor to check for a disconnect, you can call the
following subroutine periodically, ie, IF checkdcd() THEN SIGNAL BREAK_C
checkdcd:
IF ADDRESS()~='BAUD' THEN RETURN 0
dcd
IF RC=0 THEN RETURN 1
RETURN 0
Any "PULL" commands in the rexx script will take input from the user,
and any "SAY" commands will be sent out the modem.
All rexxDoors programs are sent the user name and his "winnings" as the
command argument. ie,
doorprogram.rexx(name winnings 0_or_seconds colorflag)
If cash_or_seconds=0, then we are playing for play-money cash (which is
remembered from session to session). If cash_or_seconds>0 then the user
is playing for the seconds remaining in this session. There is no
requirement that the rexxDoors program use ANY of these arguments. If
the rexxDoors program should return a "winnings" amount, it should do a
"CALL SETCLIP('BBS_winnings',winnings)" before it returns.
rexxDoors can also connect non-rexx programs to the BBS.
1. Program must output ONLY to the CLI. (no graphics, no windows, etc.)
2. Then write a little program like this and put it in rexxDoors. Note
that in this example, the Dungeon files have been put in a drawer within
the rexxDoors drawer, rexxDoors/Data. This location is arbitrary.
-----------------------------cut-here----------------------------------
/* Dungeon.rexx - starts up AmigaDungeon with redirects */
LF='0A'x
CR='0D'x
bbspath=GETCLIP('BBS_path')
PARSE ARG name winnings flag colorflag .
/* give any addition information needed by the user */
SAY CR
SAY 'Your terminal should add a carraige-return to each received linefeed.'CR
SAY CR
SAY ' No carraige-returns are generated by Dungeon!'CR
SAY CR
SAY 'Enter INFO for general game information. Enter HELP for help and hints.'CR
SAY CR
SAY ' Loading... Please wait for prompt character > to appear.'CR
SAY CR
/* point this macro at the Dungeons drawer so that Dungeon can find its data */
/* This may or may not be necessary for your particular application. */
CALL PRAGMA('D',bbspath'rexxDoors/Data')
/* Run the game, redirecting input and output to the console (BaudBandit) */
ADDRESS COMMAND 'CD' bbspath'rexxDoors/Data'LF'dungeon <* >*'
EXIT;
/* end of Dungeon.rexx */
-----------------------------cut-here----------------------------------
NOTE:
Although the game program is now in control, if the user exceeds his time,
or hangs up, a program that is running in the background, bbsDEMON.baud,
will send a BREAK (CTRL-C) to the game, and a "go to logout" to the BBS.
If your game won't stop when it gets a CTRL-C, you'll have to rewrite the
DEMON to send "QUIT" or whatever magic your game requires.
******************************* Misc *****************************
REXXSPELL:
To use RxSpell (SpellBBS.lzh) with BBBBS, simply set the proper path
and turn on spellchecking in CONFIG.BBS. You must have plenty of RAM
to use spellchecking as it may use 3-500k all by itself. On the other
hand, it's fairly fast once it is all been loaded.
Download/Upload Ratio: User data line 17, Word 1 - 0=DISABLED
Example: 5 means user will be refused downloading if
DownloadBytes divided by UploadBytes exceeds 5.0,
and bbs_preferences has Down/Upload Ratios set to ON (1).
FILE LISTS:
If you feel you really MUST get in there and futz around with a file,
remember this. Changes in a file or filenote can effect _5_ different
files (at least). The file itself (say, "BBS_LIBS/Text/MyPoem.lzh"),
the filenote ("FileNotes/Text/MyPoem.lzh"), the general filelist (this
file, "Lists/Files", is VERY important to the system!), the alphabetical
list ("Lists/File.ALPHA"), and the upload counter ("Numbers/LastFile").
It is best to do file maintenance from within the BBS and let the
software worry about what files need changing and rearranging.
LINKS:
To add a file to the libraries that will be located somewhere other
than the normal BBS_LIBS...
1. "Point" BBBBS at the appropriate library by entering the library
number (BBBBS will try to show new files. When it is thru, the current
library will be the one you picked).
2. Attempt to edit a filenote using the "%" command, and the name of
the file you wish to add. When asked if this file is "on another device?"
answer "Y" and enter the FULL path and filename for the file. This "link"
is stored in the filecomment of the description.
3. Now this file will be treated as if it is in the libraries, stats will
be kept on it, etc., but it will be downloaded from the link path.
You can also move a file already in the BBS_LIBS to another device.
Handy when the only way to expand your BBS is to purchase a second HD,
or perhaps redirect some of the filelist to a CD-ROM, Tape-Drive, etc.
1. move the file, but not the filenote.
2. use the C:FileNote command to enter the new path to the old file in
the comment field of the file description. Use the *full* name, ie
C:FileNote BBS:FileNotes/Text/Thisfile.lha "HD2:Overflow/Text/Thisfile.lha"
Note that the file report will tell you to compare files and filenotes
in that directory, but won't list a filename, as it does for files that
don't have filenotes yet. Just ignore it.
BIRTHDAYS:
Each user is supposed (but not required) to enter his birthday when
filling out the application for membership. This is used in computing
the age of the average BBS user. In addition, if the user calls BBBBS
on his birthday, she will see a simple birthday greeting. If a textfile
called "BBS_TEXT/BIRTHDAY" exists, that file will also be displayed.
*********************** end of BBBBS.doc ****************************